package com.sayimo.maker.mall.orders.service;

import java.util.List;
import java.util.Map;

import com.sayimo.framework.exception.ServiceException;
import com.sayimo.maker.mall.orders.vo.GenerateReceivingAddressResult;
import com.sayimo.maker.mall.orders.vo.OrdersReceivingAddress;

/**
 * @Copyright (c) 2016 广东省尚一互联网有限公司
 * @Project: schoolmallapi
 * @ClassName: OrdersReceivingAddressInterfaceService
 * @Description: 订单收货地址Service
 * @Author: 王瑞清
 * @Date: 日期：2016年1月4日 时间：下午3:00:17
 * @Version 1.0.0
 */
public interface OrdersReceivingAddressInterfaceService {

	/**
	 * @Title: insertOrdersReceivingBatchCode
	 * @Author: 王瑞清
	 * @Date:日期：2016年1月8日 时间：下午2:23:32
	 * @Description: 新增批次号
	 * @param ordersId
	 * @throws ServiceException
	 * @return void
	 * @Version 1.0.0
	 */
	public GenerateReceivingAddressResult insertOrdersReceivingBatchCode(Integer[] ordersIds, Integer customerId) throws ServiceException;

	/**
	 * @Title: queryOrdersReceivingCountByBatchCode
	 * @Author: 王瑞清
	 * @Date:日期：2016年1月8日 时间：下午2:23:26
	 * @Description: 按批次号
	 * @param batchCode
	 * @throws ServiceException
	 * @return Integer
	 * @Version 1.0.0
	 */
	public Integer queryOrdersReceivingCountByBatchCode(String batchCode) throws ServiceException;

	/**
	 * 
	 * @MethodName queryOrdersReceivingAddressByBatchCode
	 * @Description 根据收货地址
	 * 
	 * @author chenpy
	 * @date 2016年1月8日 下午2:39:57
	 * @param
	 * @return List<OrdersReceivingAddress>
	 * @VERSION 1.0.0
	 */
	public List<OrdersReceivingAddress> queryOrdersReceivingAddressByBatchCode(String batchCode) throws ServiceException;
	
	
	/** 
	* @Title: queryOrderReceivingCountByOrdersId 
	* @Author: 王瑞清
	* @Date:日期：2016年1月12日  时间：下午6:30:32
	* @Description: 按订单ID统计
	* @param ordersId
	* @throws ServiceException
	* @return Integer
	* @Version 1.0.0
	*/ 
	public OrdersReceivingAddress queryOrderReceivingCountByOrdersId(Integer ordersId) throws ServiceException;
	
	/**
	 * 
	 * @MethodName batchUpdateOrderRecevingAddr
	 * @Description 批量修改订单收货地址
	 * 
	 * @author chenpy
	 * @date 2016年1月13日 下午5:06:02
	 * @param 
	 * @return Integer
	 * @VERSION 1.0.0
	 */
	public Integer batchUpdateOrderRecevingAddr(List<OrdersReceivingAddress> list) throws ServiceException;
	
	/** 
	* @Title: queryOrderReceivingCountByOrdersIds 
	* @Author: 王瑞清
	* @Date:日期：2016年2月25日  时间：下午3:13:22
	* @Description: 按订单ID集合查询
	* @param ids
	* @throws ServiceException
	* @return List<OrdersReceivingAddress>
	* @Version 1.0.0
	*/ 
	public List<OrdersReceivingAddress> queryOrderReceivingCountByOrdersIds(List<Integer> ids) throws ServiceException;
	
	public String generateBatchCode() throws ServiceException;

	/** 
	  * @package com.sayimo.school.mall.service.ope.impl
	  * @author chenpy
	  * @Title:  insertOrdersReceivingAddress
	  * @Description: 新增订单收货地址
	  * @param 
	  * @throws 
	  * @return int
	  * @date 2016年6月17日
	  */  
	public int insertOrdersReceivingAddress(Map<String, Object> paramAddress)throws ServiceException;

}
